#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
#include <sys/wait.h>

int main()
{
    pid_t id=fork();
    if(id<0)
    {
        printf("fork error\n");
        return 1;
    }
    if(id==0)
    {
        int n=5;
        while(n)
        {
            printf("child: pid: %d, ppid: %d\n",getpid(),getppid());
            sleep(1);
            n--;
        }
        return 0;
    }
    else
    {
        printf("parent: pid: %d,ppid: %d\n",getpid(),getppid());
        sleep(7);
        pid_t ret=wait(NULL);
        if(ret>0)
        {
            printf("child exit successful: %d\n",ret);
        }
        while(1)
        {
            printf("parent: pid: %d,ppid: %d\n",getpid(),getppid());
            sleep(1);
        }
    }
    return 0;
}

// int main()
// {
//     for(int number=0;number<100;number++)
//     {
//         printf("%d: %s\n",number,strerror(number));
//     }
// }
// int sum(int top)
// {
//     int s=0;
//     for(int i=1;i<=top;i++)
//     {
//         s+=i;
//     }
//     return s;
// }
// int main()
// {
//     int ret=0;
//     printf("hello world: pid: %d, ppid: %d\n",getpid(),getppid());
//     int res=sum(100);
//     if(res!=5050)
//     {
//         ret=1;
//     }
//     return ret;
// }

// int main()
// {
//     int max_cnt=0;
//     while(1)
//     {
//         pid_t id=fork();
//         if(id<0)
//         {
//             printf("fork error: %d\n",max_cnt);
//             break;
//         }
//         if(id==0)
//         {
//             while(1){sleep(1);}
//         }
//         else{}
//         max_cnt++;
//     }
//     return 0;
// }
